{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pandas\n",
"### Struktury danych\n",
"\n",
"#### Szeregi (Series)\n",
"\n",
"Odsyłam do ćwiczeń, gdzie **Series** zostały już omówione."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Tabelki albo ramki (DataFrame)\n",
"\n",
"O szergach możemy myśleć jako o tabelkach jednowymiarowych. Obiekt DataFrame (tabelka albo ramka danych) jest tabelką dwuwymiarową\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Sposoby generowania.**\n",
"\n",
"1. Najprostszy sposób: za pomocą słownika o wartościach w listach jednakowej długości; np. "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"populacja={'płeć': 3*['K']+2*['M']+ 2*['K'],\n",
" 'wiek': [31, 27, 42, 26, 15, 47, 19],\n",
" 'wykształcenie': 2*['średnie']+2*['wyższe']+['podstawowe']+2*['wyższe'],\n",
" 'zamieszkanie': 4*['wieś'] +3*['miasto'],\n",
" 'zainteresowania':['mitologia grecka', 'szydełkowanie artystyczne', 'fizyka ciała stałego', 'zielarstwo', 'modelarstwo', 'gotowanie', 'wędrówki ludów']}"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"tabelka1=pd.DataFrame(populacja)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" wiek | \n",
" wykształcenie | \n",
" zamieszkanie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" K | \n",
" 31 | \n",
" średnie | \n",
" wieś | \n",
" mitologia grecka | \n",
"
\n",
" \n",
" 1 | \n",
" K | \n",
" 27 | \n",
" średnie | \n",
" wieś | \n",
" szydełkowanie artystyczne | \n",
"
\n",
" \n",
" 2 | \n",
" K | \n",
" 42 | \n",
" wyższe | \n",
" wieś | \n",
" fizyka ciała stałego | \n",
"
\n",
" \n",
" 3 | \n",
" M | \n",
" 26 | \n",
" wyższe | \n",
" wieś | \n",
" zielarstwo | \n",
"
\n",
" \n",
" 4 | \n",
" M | \n",
" 15 | \n",
" podstawowe | \n",
" miasto | \n",
" modelarstwo | \n",
"
\n",
" \n",
" 5 | \n",
" K | \n",
" 47 | \n",
" wyższe | \n",
" miasto | \n",
" gotowanie | \n",
"
\n",
" \n",
" 6 | \n",
" K | \n",
" 19 | \n",
" wyższe | \n",
" miasto | \n",
" wędrówki ludów | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć wiek wykształcenie zamieszkanie zainteresowania\n",
"0 K 31 średnie wieś mitologia grecka\n",
"1 K 27 średnie wieś szydełkowanie artystyczne\n",
"2 K 42 wyższe wieś fizyka ciała stałego\n",
"3 M 26 wyższe wieś zielarstwo\n",
"4 M 15 podstawowe miasto modelarstwo\n",
"5 K 47 wyższe miasto gotowanie\n",
"6 K 19 wyższe miasto wędrówki ludów"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tabelka1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"klucze słownika zamieniły się na nagłówki i została dołożona numeracja, podobnie jak przy tworzeniu szeregu z listy. Możemy jednak chcieć, by wiersze opatrzone były innymi wskaźnikami niż kolejne liczby naturalne:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" wiek | \n",
" wykształcenie | \n",
" zamieszkanie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" K | \n",
" 31 | \n",
" średnie | \n",
" wieś | \n",
" mitologia grecka | \n",
"
\n",
" \n",
" B | \n",
" K | \n",
" 27 | \n",
" średnie | \n",
" wieś | \n",
" szydełkowanie artystyczne | \n",
"
\n",
" \n",
" C | \n",
" K | \n",
" 42 | \n",
" wyższe | \n",
" wieś | \n",
" fizyka ciała stałego | \n",
"
\n",
" \n",
" D | \n",
" M | \n",
" 26 | \n",
" wyższe | \n",
" wieś | \n",
" zielarstwo | \n",
"
\n",
" \n",
" E | \n",
" M | \n",
" 15 | \n",
" podstawowe | \n",
" miasto | \n",
" modelarstwo | \n",
"
\n",
" \n",
" F | \n",
" K | \n",
" 47 | \n",
" wyższe | \n",
" miasto | \n",
" gotowanie | \n",
"
\n",
" \n",
" G | \n",
" K | \n",
" 19 | \n",
" wyższe | \n",
" miasto | \n",
" wędrówki ludów | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć wiek wykształcenie zamieszkanie zainteresowania\n",
"A K 31 średnie wieś mitologia grecka\n",
"B K 27 średnie wieś szydełkowanie artystyczne\n",
"C K 42 wyższe wieś fizyka ciała stałego\n",
"D M 26 wyższe wieś zielarstwo\n",
"E M 15 podstawowe miasto modelarstwo\n",
"F K 47 wyższe miasto gotowanie\n",
"G K 19 wyższe miasto wędrówki ludów"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tabelka2=pd.DataFrame(populacja, index=['A','B','C','D','E', 'F', 'G']) \n",
"tabelka2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Co będzie, jeśli postąpić tak: "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" wiek | \n",
" wykształcenie | \n",
" zamieszkanie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" B | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" C | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" D | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" E | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" F | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" G | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć wiek wykształcenie zamieszkanie zainteresowania\n",
"A NaN NaN NaN NaN NaN\n",
"B NaN NaN NaN NaN NaN\n",
"C NaN NaN NaN NaN NaN\n",
"D NaN NaN NaN NaN NaN\n",
"E NaN NaN NaN NaN NaN\n",
"F NaN NaN NaN NaN NaN\n",
"G NaN NaN NaN NaN NaN"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tabelka3=pd.DataFrame(tabelka1, index=['A','B','C','D','E', 'F', 'G'])\n",
"tabelka3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A jeśli pozostawić część indeksów z tabelka1? "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" wiek | \n",
" wykształcenie | \n",
" zamieszkanie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" B | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" C | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 0 | \n",
" K | \n",
" 31.0 | \n",
" średnie | \n",
" wieś | \n",
" mitologia grecka | \n",
"
\n",
" \n",
" D | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" E | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" F | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 5 | \n",
" K | \n",
" 47.0 | \n",
" wyższe | \n",
" miasto | \n",
" gotowanie | \n",
"
\n",
" \n",
" G | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć wiek wykształcenie zamieszkanie zainteresowania\n",
"A NaN NaN NaN NaN NaN\n",
"B NaN NaN NaN NaN NaN\n",
"C NaN NaN NaN NaN NaN\n",
"0 K 31.0 średnie wieś mitologia grecka\n",
"D NaN NaN NaN NaN NaN\n",
"E NaN NaN NaN NaN NaN\n",
"F NaN NaN NaN NaN NaN\n",
"5 K 47.0 wyższe miasto gotowanie\n",
"G NaN NaN NaN NaN NaN"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tabelka31=pd.DataFrame(tabelka1, index=['A','B','C',0,'D','E', 'F',5, 'G'])\n",
"tabelka31"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. Za pomocą tablicy dwuwymiarowej ndarray. (Proszę zwrócić uwagę na konieczność zastosowania transpozycji.)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"populacja2=np.array([3*['K']+2*['M']+ 2*['K'],\n",
" [31, 27, 42, 26, 15, 47, 30],\n",
" 2*['średnie']+2*['wyższe']+['podstawowe']+2*['wyższe'],\n",
" 4*['wieś'] +3*['miasto'],\n",
" ['mitologia grecka', 'szydełkowanie artystyczne', 'fizyka ciała stałego', 'zielarstwo', 'modelarstwo', 'gotowanie', 'wędrówki ludów']]).T"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" wiek | \n",
" wykształcenie | \n",
" zamieszkanie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" K | \n",
" 31 | \n",
" średnie | \n",
" wieś | \n",
" mitologia grecka | \n",
"
\n",
" \n",
" B | \n",
" K | \n",
" 27 | \n",
" średnie | \n",
" wieś | \n",
" szydełkowanie artystyczne | \n",
"
\n",
" \n",
" C | \n",
" K | \n",
" 42 | \n",
" wyższe | \n",
" wieś | \n",
" fizyka ciała stałego | \n",
"
\n",
" \n",
" D | \n",
" M | \n",
" 26 | \n",
" wyższe | \n",
" wieś | \n",
" zielarstwo | \n",
"
\n",
" \n",
" E | \n",
" M | \n",
" 15 | \n",
" podstawowe | \n",
" miasto | \n",
" modelarstwo | \n",
"
\n",
" \n",
" F | \n",
" K | \n",
" 47 | \n",
" wyższe | \n",
" miasto | \n",
" gotowanie | \n",
"
\n",
" \n",
" G | \n",
" K | \n",
" 30 | \n",
" wyższe | \n",
" miasto | \n",
" wędrówki ludów | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć wiek wykształcenie zamieszkanie zainteresowania\n",
"A K 31 średnie wieś mitologia grecka\n",
"B K 27 średnie wieś szydełkowanie artystyczne\n",
"C K 42 wyższe wieś fizyka ciała stałego\n",
"D M 26 wyższe wieś zielarstwo\n",
"E M 15 podstawowe miasto modelarstwo\n",
"F K 47 wyższe miasto gotowanie\n",
"G K 30 wyższe miasto wędrówki ludów"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab2=pd.DataFrame(populacja2,index=['A','B','C','D','E', 'F', 'G'], columns=['płeć', 'wiek', 'wykształcenie', 'zamieszkanie', 'zainteresowania'], )\n",
"tab2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. Inne sposoby generowania opisane są na str. 136 podręcznika "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Podstawowe manipulacje na tablicach danych.\n",
"\n",
"1. Przestawianie wierszy"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" wiek | \n",
" wykształcenie | \n",
" zamieszkanie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" K | \n",
" 31 | \n",
" średnie | \n",
" wieś | \n",
" mitologia grecka | \n",
"
\n",
" \n",
" E | \n",
" M | \n",
" 15 | \n",
" podstawowe | \n",
" miasto | \n",
" modelarstwo | \n",
"
\n",
" \n",
" C | \n",
" K | \n",
" 42 | \n",
" wyższe | \n",
" wieś | \n",
" fizyka ciała stałego | \n",
"
\n",
" \n",
" D | \n",
" M | \n",
" 26 | \n",
" wyższe | \n",
" wieś | \n",
" zielarstwo | \n",
"
\n",
" \n",
" G | \n",
" K | \n",
" 30 | \n",
" wyższe | \n",
" miasto | \n",
" wędrówki ludów | \n",
"
\n",
" \n",
" F | \n",
" K | \n",
" 47 | \n",
" wyższe | \n",
" miasto | \n",
" gotowanie | \n",
"
\n",
" \n",
" B | \n",
" K | \n",
" 27 | \n",
" średnie | \n",
" wieś | \n",
" szydełkowanie artystyczne | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć wiek wykształcenie zamieszkanie zainteresowania\n",
"A K 31 średnie wieś mitologia grecka\n",
"E M 15 podstawowe miasto modelarstwo\n",
"C K 42 wyższe wieś fizyka ciała stałego\n",
"D M 26 wyższe wieś zielarstwo\n",
"G K 30 wyższe miasto wędrówki ludów\n",
"F K 47 wyższe miasto gotowanie\n",
"B K 27 średnie wieś szydełkowanie artystyczne"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab3=tab2.reindex(['A','E','C','D','G', 'F', 'B'])\n",
"tab3"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. Przestawianie kolumn"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['płeć', 'wiek', 'wykształcenie', 'zamieszkanie', 'zainteresowania'], dtype='object')"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab3.columns #wywołanie nagłówków kolumn"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"col=['płeć', 'wykształcenie', 'wiek', 'zamieszkanie', 'zainteresowania']\n",
"tab4=tab3.reindex(columns=col) #używamy tej samej metody co dla wierszy, ale musimy zdeklarować, że chodzi o kolumny"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" wykształcenie | \n",
" wiek | \n",
" zamieszkanie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" K | \n",
" średnie | \n",
" 31 | \n",
" wieś | \n",
" mitologia grecka | \n",
"
\n",
" \n",
" E | \n",
" M | \n",
" podstawowe | \n",
" 15 | \n",
" miasto | \n",
" modelarstwo | \n",
"
\n",
" \n",
" C | \n",
" K | \n",
" wyższe | \n",
" 42 | \n",
" wieś | \n",
" fizyka ciała stałego | \n",
"
\n",
" \n",
" D | \n",
" M | \n",
" wyższe | \n",
" 26 | \n",
" wieś | \n",
" zielarstwo | \n",
"
\n",
" \n",
" G | \n",
" K | \n",
" wyższe | \n",
" 30 | \n",
" miasto | \n",
" wędrówki ludów | \n",
"
\n",
" \n",
" F | \n",
" K | \n",
" wyższe | \n",
" 47 | \n",
" miasto | \n",
" gotowanie | \n",
"
\n",
" \n",
" B | \n",
" K | \n",
" średnie | \n",
" 27 | \n",
" wieś | \n",
" szydełkowanie artystyczne | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć wykształcenie wiek zamieszkanie zainteresowania\n",
"A K średnie 31 wieś mitologia grecka\n",
"E M podstawowe 15 miasto modelarstwo\n",
"C K wyższe 42 wieś fizyka ciała stałego\n",
"D M wyższe 26 wieś zielarstwo\n",
"G K wyższe 30 miasto wędrówki ludów\n",
"F K wyższe 47 miasto gotowanie\n",
"B K średnie 27 wieś szydełkowanie artystyczne"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. Wywoływanie kolumny lub kolumn"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"A K\n",
"E M\n",
"C K\n",
"D M\n",
"G K\n",
"F K\n",
"B K\n",
"Name: płeć, dtype: object"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4['płeć']"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"A średnie\n",
"E podstawowe\n",
"C wyższe\n",
"D wyższe\n",
"G wyższe\n",
"F wyższe\n",
"B średnie\n",
"Name: wykształcenie, dtype: object"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4['wykształcenie']"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"A średnie\n",
"E podstawowe\n",
"C wyższe\n",
"D wyższe\n",
"G wyższe\n",
"F wyższe\n",
"B średnie\n",
"Name: wykształcenie, dtype: object"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4.wykształcenie #inny sposób wywołania kolumny; działa, gdy nazwa kolumny jest prawidłową nazwą zmiennej w Pythonie"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" zamieszkanie | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" K | \n",
" wieś | \n",
"
\n",
" \n",
" E | \n",
" M | \n",
" miasto | \n",
"
\n",
" \n",
" C | \n",
" K | \n",
" wieś | \n",
"
\n",
" \n",
" D | \n",
" M | \n",
" wieś | \n",
"
\n",
" \n",
" G | \n",
" K | \n",
" miasto | \n",
"
\n",
" \n",
" F | \n",
" K | \n",
" miasto | \n",
"
\n",
" \n",
" B | \n",
" K | \n",
" wieś | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć zamieszkanie\n",
"A K wieś\n",
"E M miasto\n",
"C K wieś\n",
"D M wieś\n",
"G K miasto\n",
"F K miasto\n",
"B K wieś"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Wywołanie kolumn 'płeć', 'zamieszkanie'\n",
"tab4[['płeć', 'zamieszkanie']]"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" wykształcenie | \n",
" wiek | \n",
" zamieszkanie | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" średnie | \n",
" 31 | \n",
" wieś | \n",
"
\n",
" \n",
" E | \n",
" podstawowe | \n",
" 15 | \n",
" miasto | \n",
"
\n",
" \n",
" C | \n",
" wyższe | \n",
" 42 | \n",
" wieś | \n",
"
\n",
" \n",
" D | \n",
" wyższe | \n",
" 26 | \n",
" wieś | \n",
"
\n",
" \n",
" G | \n",
" wyższe | \n",
" 30 | \n",
" miasto | \n",
"
\n",
" \n",
" F | \n",
" wyższe | \n",
" 47 | \n",
" miasto | \n",
"
\n",
" \n",
" B | \n",
" średnie | \n",
" 27 | \n",
" wieś | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" wykształcenie wiek zamieszkanie\n",
"A średnie 31 wieś\n",
"E podstawowe 15 miasto\n",
"C wyższe 42 wieś\n",
"D wyższe 26 wieś\n",
"G wyższe 30 miasto\n",
"F wyższe 47 miasto\n",
"B średnie 27 wieś"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Wywołanie blokowe\n",
"tab4[tab4.columns[1:4]]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"5. Wywoływanie wiersza"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"płeć K\n",
"wykształcenie średnie\n",
"wiek 31\n",
"zamieszkanie wieś\n",
"zainteresowania mitologia grecka\n",
"Name: A, dtype: object"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4.loc['A'] #klucze otrzymanego szeregu są nazwami kolumn tab4"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"5b. Wywoływanie wyrazu tablicy"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"('15', '15')"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4['wiek']['E'], tab4.loc['E']['wiek'] #najpierw kolumna, najpierw wiersz"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'15'"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#lub tak\n",
"tab4.loc['E','wiek']"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'15'"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#a także tak i tak\n",
"\n",
"tab4.at['E','wiek']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Za pomocą metody dostępu .at możemy także zmienić wartość w tablicy:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'17'"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4.at['E','wiek']='17'\n",
"tab4.at['E','wiek']"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'18'"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4['wiek']['E']='18'\n",
"tab4['wiek']['E']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Uwaga:** Gdybyśmy chcieli wywołać blok tablicy (wybrane nagłówki kolumn i wierszy), to można użyć funkcji reindex i zdefiniować nową tablicę. Np. z tab4 wybieramy nagłówki wierszy - A, C, G, F - i kolumn - płeć, wykształcenie, zainteresowanie."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"tab4b=tab4.reindex(columns=['płeć', 'wykształcenie', 'zainteresowania'], index=list('ACGF'))"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" wykształcenie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" K | \n",
" średnie | \n",
" mitologia grecka | \n",
"
\n",
" \n",
" C | \n",
" K | \n",
" wyższe | \n",
" fizyka ciała stałego | \n",
"
\n",
" \n",
" G | \n",
" K | \n",
" wyższe | \n",
" wędrówki ludów | \n",
"
\n",
" \n",
" F | \n",
" K | \n",
" wyższe | \n",
" gotowanie | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć wykształcenie zainteresowania\n",
"A K średnie mitologia grecka\n",
"C K wyższe fizyka ciała stałego\n",
"G K wyższe wędrówki ludów\n",
"F K wyższe gotowanie"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4b"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Można też postąpić tak:"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" wykształcenie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" K | \n",
" średnie | \n",
" mitologia grecka | \n",
"
\n",
" \n",
" C | \n",
" K | \n",
" wyższe | \n",
" fizyka ciała stałego | \n",
"
\n",
" \n",
" G | \n",
" K | \n",
" wyższe | \n",
" wędrówki ludów | \n",
"
\n",
" \n",
" F | \n",
" K | \n",
" wyższe | \n",
" gotowanie | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć wykształcenie zainteresowania\n",
"A K średnie mitologia grecka\n",
"C K wyższe fizyka ciała stałego\n",
"G K wyższe wędrówki ludów\n",
"F K wyższe gotowanie"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4d=tab4.loc[list('ACGF'),['płeć', 'wykształcenie', 'zainteresowania']]\n",
"tab4d "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"6. Dopisywanie kolumny lub jej modyfikacja"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"tab4['wzrost']=[160,159,175,180,175, 170,164]"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" wykształcenie | \n",
" wiek | \n",
" zamieszkanie | \n",
" zainteresowania | \n",
" wzrost | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" K | \n",
" średnie | \n",
" 31 | \n",
" wieś | \n",
" mitologia grecka | \n",
" 160 | \n",
"
\n",
" \n",
" E | \n",
" M | \n",
" podstawowe | \n",
" 18 | \n",
" miasto | \n",
" modelarstwo | \n",
" 159 | \n",
"
\n",
" \n",
" C | \n",
" K | \n",
" wyższe | \n",
" 42 | \n",
" wieś | \n",
" fizyka ciała stałego | \n",
" 175 | \n",
"
\n",
" \n",
" D | \n",
" M | \n",
" wyższe | \n",
" 26 | \n",
" wieś | \n",
" zielarstwo | \n",
" 180 | \n",
"
\n",
" \n",
" G | \n",
" K | \n",
" wyższe | \n",
" 30 | \n",
" miasto | \n",
" wędrówki ludów | \n",
" 175 | \n",
"
\n",
" \n",
" F | \n",
" K | \n",
" wyższe | \n",
" 47 | \n",
" miasto | \n",
" gotowanie | \n",
" 170 | \n",
"
\n",
" \n",
" B | \n",
" K | \n",
" średnie | \n",
" 27 | \n",
" wieś | \n",
" szydełkowanie artystyczne | \n",
" 164 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć wykształcenie wiek zamieszkanie zainteresowania wzrost\n",
"A K średnie 31 wieś mitologia grecka 160\n",
"E M podstawowe 18 miasto modelarstwo 159\n",
"C K wyższe 42 wieś fizyka ciała stałego 175\n",
"D M wyższe 26 wieś zielarstwo 180\n",
"G K wyższe 30 miasto wędrówki ludów 175\n",
"F K wyższe 47 miasto gotowanie 170\n",
"B K średnie 27 wieś szydełkowanie artystyczne 164"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"tab4['wzrost']=[160,159,175,180,175, 170,166] #zmieniliśmy tylko jedną wartość!, więc metoda jest niezbyt wydajna."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" wykształcenie | \n",
" wiek | \n",
" zamieszkanie | \n",
" zainteresowania | \n",
" wzrost | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" K | \n",
" średnie | \n",
" 31 | \n",
" wieś | \n",
" mitologia grecka | \n",
" 160 | \n",
"
\n",
" \n",
" E | \n",
" M | \n",
" podstawowe | \n",
" 18 | \n",
" miasto | \n",
" modelarstwo | \n",
" 159 | \n",
"
\n",
" \n",
" C | \n",
" K | \n",
" wyższe | \n",
" 42 | \n",
" wieś | \n",
" fizyka ciała stałego | \n",
" 175 | \n",
"
\n",
" \n",
" D | \n",
" M | \n",
" wyższe | \n",
" 26 | \n",
" wieś | \n",
" zielarstwo | \n",
" 180 | \n",
"
\n",
" \n",
" G | \n",
" K | \n",
" wyższe | \n",
" 30 | \n",
" miasto | \n",
" wędrówki ludów | \n",
" 175 | \n",
"
\n",
" \n",
" F | \n",
" K | \n",
" wyższe | \n",
" 47 | \n",
" miasto | \n",
" gotowanie | \n",
" 170 | \n",
"
\n",
" \n",
" B | \n",
" K | \n",
" średnie | \n",
" 27 | \n",
" wieś | \n",
" szydełkowanie artystyczne | \n",
" 166 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć wykształcenie wiek zamieszkanie zainteresowania wzrost\n",
"A K średnie 31 wieś mitologia grecka 160\n",
"E M podstawowe 18 miasto modelarstwo 159\n",
"C K wyższe 42 wieś fizyka ciała stałego 175\n",
"D M wyższe 26 wieś zielarstwo 180\n",
"G K wyższe 30 miasto wędrówki ludów 175\n",
"F K wyższe 47 miasto gotowanie 170\n",
"B K średnie 27 wieś szydełkowanie artystyczne 166"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"7. Usuwanie kolumny "
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"del(tab4['wzrost'])"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" wykształcenie | \n",
" wiek | \n",
" zamieszkanie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" K | \n",
" średnie | \n",
" 31 | \n",
" wieś | \n",
" mitologia grecka | \n",
"
\n",
" \n",
" E | \n",
" M | \n",
" podstawowe | \n",
" 15 | \n",
" miasto | \n",
" modelarstwo | \n",
"
\n",
" \n",
" C | \n",
" K | \n",
" wyższe | \n",
" 42 | \n",
" wieś | \n",
" fizyka ciała stałego | \n",
"
\n",
" \n",
" D | \n",
" M | \n",
" wyższe | \n",
" 26 | \n",
" wieś | \n",
" zielarstwo | \n",
"
\n",
" \n",
" G | \n",
" K | \n",
" wyższe | \n",
" 30 | \n",
" miasto | \n",
" wędrówki ludów | \n",
"
\n",
" \n",
" F | \n",
" K | \n",
" wyższe | \n",
" 47 | \n",
" miasto | \n",
" gotowanie | \n",
"
\n",
" \n",
" B | \n",
" K | \n",
" średnie | \n",
" 27 | \n",
" wieś | \n",
" szydełkowanie artystyczne | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć wykształcenie wiek zamieszkanie zainteresowania\n",
"A K średnie 31 wieś mitologia grecka\n",
"E M podstawowe 15 miasto modelarstwo\n",
"C K wyższe 42 wieś fizyka ciała stałego\n",
"D M wyższe 26 wieś zielarstwo\n",
"G K wyższe 30 miasto wędrówki ludów\n",
"F K wyższe 47 miasto gotowanie\n",
"B K średnie 27 wieś szydełkowanie artystyczne"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"8. Dopisywanie wiersza"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"tab4.loc['X']=['M','średnie', 40, 'miasto', 'sporty walki']"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" wykształcenie | \n",
" wiek | \n",
" zamieszkanie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" K | \n",
" średnie | \n",
" 31 | \n",
" wieś | \n",
" mitologia grecka | \n",
"
\n",
" \n",
" E | \n",
" M | \n",
" podstawowe | \n",
" 18 | \n",
" miasto | \n",
" modelarstwo | \n",
"
\n",
" \n",
" C | \n",
" K | \n",
" wyższe | \n",
" 42 | \n",
" wieś | \n",
" fizyka ciała stałego | \n",
"
\n",
" \n",
" D | \n",
" M | \n",
" wyższe | \n",
" 26 | \n",
" wieś | \n",
" zielarstwo | \n",
"
\n",
" \n",
" G | \n",
" K | \n",
" wyższe | \n",
" 30 | \n",
" miasto | \n",
" wędrówki ludów | \n",
"
\n",
" \n",
" F | \n",
" K | \n",
" wyższe | \n",
" 47 | \n",
" miasto | \n",
" gotowanie | \n",
"
\n",
" \n",
" B | \n",
" K | \n",
" średnie | \n",
" 27 | \n",
" wieś | \n",
" szydełkowanie artystyczne | \n",
"
\n",
" \n",
" X | \n",
" M | \n",
" średnie | \n",
" 40 | \n",
" miasto | \n",
" sporty walki | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć wykształcenie wiek zamieszkanie zainteresowania\n",
"A K średnie 31 wieś mitologia grecka\n",
"E M podstawowe 18 miasto modelarstwo\n",
"C K wyższe 42 wieś fizyka ciała stałego\n",
"D M wyższe 26 wieś zielarstwo\n",
"G K wyższe 30 miasto wędrówki ludów\n",
"F K wyższe 47 miasto gotowanie\n",
"B K średnie 27 wieś szydełkowanie artystyczne\n",
"X M średnie 40 miasto sporty walki"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"9. Usunięcie wiersza (ćwiczenie)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"10. Nadawanie nazw zbiorczych nagłówkom kolumn i wierszy"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" socjologia | \n",
" płeć | \n",
" wykształcenie | \n",
" wiek | \n",
" zamieszkanie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" litery | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" K | \n",
" średnie | \n",
" 31 | \n",
" wieś | \n",
" mitologia grecka | \n",
"
\n",
" \n",
" E | \n",
" M | \n",
" podstawowe | \n",
" 18 | \n",
" miasto | \n",
" modelarstwo | \n",
"
\n",
" \n",
" C | \n",
" K | \n",
" wyższe | \n",
" 42 | \n",
" wieś | \n",
" fizyka ciała stałego | \n",
"
\n",
" \n",
" D | \n",
" M | \n",
" wyższe | \n",
" 26 | \n",
" wieś | \n",
" zielarstwo | \n",
"
\n",
" \n",
" G | \n",
" K | \n",
" wyższe | \n",
" 30 | \n",
" miasto | \n",
" wędrówki ludów | \n",
"
\n",
" \n",
" F | \n",
" K | \n",
" wyższe | \n",
" 47 | \n",
" miasto | \n",
" gotowanie | \n",
"
\n",
" \n",
" B | \n",
" K | \n",
" średnie | \n",
" 27 | \n",
" wieś | \n",
" szydełkowanie artystyczne | \n",
"
\n",
" \n",
" X | \n",
" M | \n",
" średnie | \n",
" 40 | \n",
" miasto | \n",
" sporty walki | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"socjologia płeć wykształcenie wiek zamieszkanie zainteresowania\n",
"litery \n",
"A K średnie 31 wieś mitologia grecka\n",
"E M podstawowe 18 miasto modelarstwo\n",
"C K wyższe 42 wieś fizyka ciała stałego\n",
"D M wyższe 26 wieś zielarstwo\n",
"G K wyższe 30 miasto wędrówki ludów\n",
"F K wyższe 47 miasto gotowanie\n",
"B K średnie 27 wieś szydełkowanie artystyczne\n",
"X M średnie 40 miasto sporty walki"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4.index.name='litery'; tab4.columns.name='socjologia'\n",
"tab4"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"del(tab4.index.name) #usuwanie nazwy zbiorczej nagłówków wierszy"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" socjologia | \n",
" płeć | \n",
" wykształcenie | \n",
" wiek | \n",
" zamieszkanie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" K | \n",
" średnie | \n",
" 31 | \n",
" wieś | \n",
" mitologia grecka | \n",
"
\n",
" \n",
" E | \n",
" M | \n",
" podstawowe | \n",
" 18 | \n",
" miasto | \n",
" modelarstwo | \n",
"
\n",
" \n",
" C | \n",
" K | \n",
" wyższe | \n",
" 42 | \n",
" wieś | \n",
" fizyka ciała stałego | \n",
"
\n",
" \n",
" D | \n",
" M | \n",
" wyższe | \n",
" 26 | \n",
" wieś | \n",
" zielarstwo | \n",
"
\n",
" \n",
" G | \n",
" K | \n",
" wyższe | \n",
" 30 | \n",
" miasto | \n",
" wędrówki ludów | \n",
"
\n",
" \n",
" F | \n",
" K | \n",
" wyższe | \n",
" 47 | \n",
" miasto | \n",
" gotowanie | \n",
"
\n",
" \n",
" B | \n",
" K | \n",
" średnie | \n",
" 27 | \n",
" wieś | \n",
" szydełkowanie artystyczne | \n",
"
\n",
" \n",
" X | \n",
" M | \n",
" średnie | \n",
" 40 | \n",
" miasto | \n",
" sporty walki | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"socjologia płeć wykształcenie wiek zamieszkanie zainteresowania\n",
"A K średnie 31 wieś mitologia grecka\n",
"E M podstawowe 18 miasto modelarstwo\n",
"C K wyższe 42 wieś fizyka ciała stałego\n",
"D M wyższe 26 wieś zielarstwo\n",
"G K wyższe 30 miasto wędrówki ludów\n",
"F K wyższe 47 miasto gotowanie\n",
"B K średnie 27 wieś szydełkowanie artystyczne\n",
"X M średnie 40 miasto sporty walki"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"11. Transpozycja kolumn z wierszami "
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" A | \n",
" E | \n",
" C | \n",
" D | \n",
" G | \n",
" F | \n",
" B | \n",
" X | \n",
"
\n",
" \n",
" socjologia | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" płeć | \n",
" K | \n",
" M | \n",
" K | \n",
" M | \n",
" K | \n",
" K | \n",
" K | \n",
" M | \n",
"
\n",
" \n",
" wykształcenie | \n",
" średnie | \n",
" podstawowe | \n",
" wyższe | \n",
" wyższe | \n",
" wyższe | \n",
" wyższe | \n",
" średnie | \n",
" średnie | \n",
"
\n",
" \n",
" wiek | \n",
" 31 | \n",
" 18 | \n",
" 42 | \n",
" 26 | \n",
" 30 | \n",
" 47 | \n",
" 27 | \n",
" 40 | \n",
"
\n",
" \n",
" zamieszkanie | \n",
" wieś | \n",
" miasto | \n",
" wieś | \n",
" wieś | \n",
" miasto | \n",
" miasto | \n",
" wieś | \n",
" miasto | \n",
"
\n",
" \n",
" zainteresowania | \n",
" mitologia grecka | \n",
" modelarstwo | \n",
" fizyka ciała stałego | \n",
" zielarstwo | \n",
" wędrówki ludów | \n",
" gotowanie | \n",
" szydełkowanie artystyczne | \n",
" sporty walki | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" A E C \\\n",
"socjologia \n",
"płeć K M K \n",
"wykształcenie średnie podstawowe wyższe \n",
"wiek 31 18 42 \n",
"zamieszkanie wieś miasto wieś \n",
"zainteresowania mitologia grecka modelarstwo fizyka ciała stałego \n",
"\n",
" D G F \\\n",
"socjologia \n",
"płeć M K K \n",
"wykształcenie wyższe wyższe wyższe \n",
"wiek 26 30 47 \n",
"zamieszkanie wieś miasto miasto \n",
"zainteresowania zielarstwo wędrówki ludów gotowanie \n",
"\n",
" B X \n",
"socjologia \n",
"płeć K M \n",
"wykształcenie średnie średnie \n",
"wiek 27 40 \n",
"zamieszkanie wieś miasto \n",
"zainteresowania szydełkowanie artystyczne sporty walki "
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4T=tab4.T; tab4T"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"12. Samodzielnie proszę przerobić obiekty indeks tzn. zbierające informacje dotyczące nagłówków kolumn i wierszy. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"13. Obiekt indeks jest niemutowalny i nieco podobny do krotki. Można go plasterkować:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Index(['A', 'E', 'C', 'D', 'G', 'F', 'B', 'X'], dtype='object') \n",
" Index(['płeć', 'wykształcenie', 'wiek', 'zamieszkanie', 'zainteresowania'], dtype='object')\n"
]
}
],
"source": [
"a, b=tab4.index, tab4.columns\n",
"#len(a), len(b)\n",
"print(a,'\\n',b)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(Index(['D', 'G'], dtype='object'), Index(['zamieszkanie'], dtype='object'))"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a[3:5], b[3:-1]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Metoda loc ma także wersję numeryczną iloc (patrz 5b):"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" płeć wykształcenie wiek zamieszkanie zainteresowania\n",
"A K średnie 31 wieś mitologia grecka\n",
"E M podstawowe 15 miasto modelarstwo\n",
"C K wyższe 42 wieś fizyka ciała stałego\n",
"D M wyższe 26 wieś zielarstwo\n",
"G K wyższe 30 miasto wędrówki ludów\n",
"F K wyższe 47 miasto gotowanie\n",
"B K średnie 27 wieś szydełkowanie artystyczne\n",
"X M średnie 40 miasto sporty walki \n",
"\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" płeć | \n",
" wykształcenie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" \n",
" \n",
" A | \n",
" K | \n",
" średnie | \n",
" mitologia grecka | \n",
"
\n",
" \n",
" C | \n",
" K | \n",
" wyższe | \n",
" fizyka ciała stałego | \n",
"
\n",
" \n",
" G | \n",
" K | \n",
" wyższe | \n",
" wędrówki ludów | \n",
"
\n",
" \n",
" F | \n",
" K | \n",
" wyższe | \n",
" gotowanie | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" płeć wykształcenie zainteresowania\n",
"A K średnie mitologia grecka\n",
"C K wyższe fizyka ciała stałego\n",
"G K wyższe wędrówki ludów\n",
"F K wyższe gotowanie"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print(tab4,'\\n')\n",
"tab4d=tab4.loc[list('ACGF'),['płeć', 'wykształcenie', 'zainteresowania']]\n",
"tab4d "
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" zamieszkanie | \n",
" zainteresowania | \n",
"
\n",
" \n",
" \n",
" \n",
" E | \n",
" miasto | \n",
" modelarstwo | \n",
"
\n",
" \n",
" C | \n",
" wieś | \n",
" fizyka ciała stałego | \n",
"
\n",
" \n",
" D | \n",
" wieś | \n",
" zielarstwo | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" zamieszkanie zainteresowania\n",
"E miasto modelarstwo\n",
"C wieś fizyka ciała stałego\n",
"D wieś zielarstwo"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tab4e=tab4.iloc[[1,2,3], [3,4]]\n",
"tab4e"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Operacje arytmetyczne. Wyrównywanie."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"np.random.seed(3145)\n",
"a,b=np.random.randint(-2,2,(3,3)),np.random.randint(-2,2,(3,3))"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" c | \n",
" cc | \n",
" ccc | \n",
"
\n",
" \n",
" \n",
" \n",
" a | \n",
" -2 | \n",
" 0 | \n",
" 1 | \n",
"
\n",
" \n",
" b | \n",
" -1 | \n",
" 0 | \n",
" -2 | \n",
"
\n",
" \n",
" c | \n",
" 1 | \n",
" -1 | \n",
" -1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" c cc ccc\n",
"a -2 0 1\n",
"b -1 0 -2\n",
"c 1 -1 -1"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"indexa, indexb=['a','b','c'],['b','c',3]\n",
"columnsa,columnsb=['c','cc','ccc'],['cc','ccc','x']\n",
"ADF, BDF=pd.DataFrame(a,index=indexa, columns=columnsa), pd.DataFrame(b,index=indexb, columns=columnsb)\n",
"ADF"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" cc ccc x\n",
"b 1 1 1\n",
"c -1 -2 -1\n",
"3 1 0 1\n"
]
}
],
"source": [
"print(BDF)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. Funkcje uniwersalne działają tak samo skutecznie na tablicach pd jak na ndarrays:"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" cc | \n",
" ccc | \n",
" x | \n",
"
\n",
" \n",
" \n",
" \n",
" b | \n",
" 2.718282 | \n",
" 2.718282 | \n",
" 2.718282 | \n",
"
\n",
" \n",
" c | \n",
" 0.367879 | \n",
" 0.135335 | \n",
" 0.367879 | \n",
"
\n",
" \n",
" 3 | \n",
" 2.718282 | \n",
" 1.000000 | \n",
" 2.718282 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" cc ccc x\n",
"b 2.718282 2.718282 2.718282\n",
"c 0.367879 0.135335 0.367879\n",
"3 2.718282 1.000000 2.718282"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.exp(BDF)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" cc | \n",
" ccc | \n",
" x | \n",
"
\n",
" \n",
" \n",
" \n",
" b | \n",
" 1.158529 | \n",
" 1.158529 | \n",
" 1.158529 | \n",
"
\n",
" \n",
" c | \n",
" 2.841471 | \n",
" 3.555049 | \n",
" 2.841471 | \n",
"
\n",
" \n",
" 3 | \n",
" 1.158529 | \n",
" 1.732051 | \n",
" 1.158529 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" cc ccc x\n",
"b 1.158529 1.158529 1.158529\n",
"c 2.841471 3.555049 2.841471\n",
"3 1.158529 1.732051 1.158529"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.sqrt(BDF**2+3)-np.sin(BDF)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. Operacje na parze tablic."
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\Krzys\\Miniconda3\\lib\\site-packages\\pandas\\core\\generic.py:7389: RuntimeWarning: '<' not supported between instances of 'str' and 'int', sort order is undefined for incomparable objects\n",
" other.index, how=join, level=level, return_indexers=True)\n"
]
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" c | \n",
" cc | \n",
" ccc | \n",
" x | \n",
"
\n",
" \n",
" \n",
" \n",
" a | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" b | \n",
" NaN | \n",
" 1.0 | \n",
" -1.0 | \n",
" NaN | \n",
"
\n",
" \n",
" c | \n",
" NaN | \n",
" -2.0 | \n",
" -3.0 | \n",
" NaN | \n",
"
\n",
" \n",
" 3 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" c cc ccc x\n",
"a NaN NaN NaN NaN\n",
"b NaN 1.0 -1.0 NaN\n",
"c NaN -2.0 -3.0 NaN\n",
"3 NaN NaN NaN NaN"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ADF+BDF"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Komentarz.** Jeśli którykolwiek z nagłówków wiersza (kolumny) nie pojawia się w dokładnie jednej z tablic jako nagłówek wiersza (kolumny), to w tablicy wynikowej pojawi się wiersz (kolumna) z tym nagłówkiem z wyłącznie z wynikami NaN. Tam gdzie w tablicy wynikowej jest liczba; np. na miejscu $[c,cc]$, to miejsce to występuje w obu tablicach "
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" c | \n",
" cc | \n",
" ccc | \n",
" x | \n",
"
\n",
" \n",
" \n",
" \n",
" a | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" b | \n",
" NaN | \n",
" 0.0 | \n",
" -2.0 | \n",
" NaN | \n",
"
\n",
" \n",
" c | \n",
" NaN | \n",
" 1.0 | \n",
" 2.0 | \n",
" NaN | \n",
"
\n",
" \n",
" 3 | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" c cc ccc x\n",
"a NaN NaN NaN NaN\n",
"b NaN 0.0 -2.0 NaN\n",
"c NaN 1.0 2.0 NaN\n",
"3 NaN NaN NaN NaN"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"CDF=ADF*BDF\n",
"CDF"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ćwiczenie. Uzupełnić tablicę CDF wstawiając w miejsce NaN liczbę 5. "
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [],
"source": [
"for x in CDF.index:\n",
" for y in CDF.columns:\n",
" if CDF[y][x]!=CDF[y][x]:\n",
" CDF[y][x]=5"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" c | \n",
" cc | \n",
" ccc | \n",
" x | \n",
"
\n",
" \n",
" \n",
" \n",
" a | \n",
" 5.0 | \n",
" 5.0 | \n",
" 5.0 | \n",
" 5.0 | \n",
"
\n",
" \n",
" b | \n",
" 5.0 | \n",
" 0.0 | \n",
" -2.0 | \n",
" 5.0 | \n",
"
\n",
" \n",
" c | \n",
" 5.0 | \n",
" 1.0 | \n",
" 2.0 | \n",
" 5.0 | \n",
"
\n",
" \n",
" 3 | \n",
" 5.0 | \n",
" 5.0 | \n",
" 5.0 | \n",
" 5.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" c cc ccc x\n",
"a 5.0 5.0 5.0 5.0\n",
"b 5.0 0.0 -2.0 5.0\n",
"c 5.0 1.0 2.0 5.0\n",
"3 5.0 5.0 5.0 5.0"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"CDF"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Uzasadnienie.** NaN jest tego samego typu co liczby w tabelce: np.float64. jednak np.NaN spełnia inne relacje jak zwykłe liczby: "
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(False, True)"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.NaN == np.NaN, np.NaN != np.NaN"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"W książce opisane jest inne rozwiązanie. Należy do mnożenia zastosować metodę mul, która ma dodatkowy argument pozwalający na zdeklarowanie, czym zastąpić NaN. Jednak daje dość nieoczekiwany rezultat."
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" c | \n",
" cc | \n",
" ccc | \n",
" x | \n",
"
\n",
" \n",
" \n",
" \n",
" a | \n",
" -10.0 | \n",
" 0.0 | \n",
" 5.0 | \n",
" NaN | \n",
"
\n",
" \n",
" b | \n",
" -5.0 | \n",
" 0.0 | \n",
" -2.0 | \n",
" 5.0 | \n",
"
\n",
" \n",
" c | \n",
" 5.0 | \n",
" 1.0 | \n",
" 2.0 | \n",
" -5.0 | \n",
"
\n",
" \n",
" 3 | \n",
" NaN | \n",
" 5.0 | \n",
" 0.0 | \n",
" 5.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" c cc ccc x\n",
"a -10.0 0.0 5.0 NaN\n",
"b -5.0 0.0 -2.0 5.0\n",
"c 5.0 1.0 2.0 -5.0\n",
"3 NaN 5.0 0.0 5.0"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#zamiast ADF*BDF piszemy\n",
"ADF.mul(BDF, fill_value=5.0) #5 zastępuje NaN za wyjątkiem sytuacji gdy dany wyraz nie występuje w żadnejz tablic"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Zauważmy jeszcze, że mnożenie nie jest przemienne, podobnie dodawanie i pozostałe operacje. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print(ADF*BDF,'\\n'),\n",
"\n",
"BDF*ADF"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"Podobnie metoda mul; Jest także jej wersja rmul (reverse multiplication), ale wyglada na to, że robi to samo."
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" c cc ccc x\n",
"a NaN NaN NaN NaN\n",
"b NaN 0.0 -2.0 NaN\n",
"c NaN 1.0 2.0 NaN\n",
"3 NaN NaN NaN NaN \n",
"\n",
" c cc ccc x\n",
"b NaN 0.0 -2.0 NaN\n",
"c NaN 1.0 2.0 NaN\n",
"3 NaN NaN NaN NaN\n",
"a NaN NaN NaN NaN \n",
"\n",
" c cc ccc x\n",
"a NaN NaN NaN NaN\n",
"b NaN 0.0 -2.0 NaN\n",
"c NaN 1.0 2.0 NaN\n",
"3 NaN NaN NaN NaN\n"
]
}
],
"source": [
"print(ADF.mul(BDF),'\\n')\n",
"print(BDF.mul(ADF),'\\n')\n",
"print(ADF.rmul(BDF))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}